package com.richpay.basejava.base21;

/**
 * 程序：为了让计算机执行某些操作或者解决某个问题而编写的一系列有序的指令集合。
 * 进程：正在执行的程序，有自己独立的执行空间(数据在程序上的执行过程)
 * 线程：进程内的一条执行路径(线索),线程是指令的执行者。
 * static Thread currentThread():返回对当前正在执行的线程对象的引用。
 * thread.toString():返回该线程的字符串表示形式，包括线程名称、优先级和线程组
 * String getName():得到当前线程对象的名称
 * void setName(String name):修改线程的名称为name的值
 * int getPriority():获取当前线程的优先级 ;
 * 注意：线程的优先级只是决定线程在同一时间内被CPU选中的几率大而已，并不表示优先级高的线程会优先运行.
 */
public class ThreadDemo {
    public static void main(String[] args) {
        //返回正在执行的线程对象的引用地址
        Thread thread = Thread.currentThread();

        //thread.toString():返回该线程的字符串表示形式，包括线程名称、优先级和线程组
        System.out.println("thread=" + thread.toString());//Thread类的toString()方法的输出形式：Thread[main,5,main]

        //thread.getId():返回当前线程的唯一标识
        System.out.println("thread.getId()=" + thread.getId());

        thread.setName("主线程");
        //得到线程的名称
        String name = thread.getName();
        System.out.println("name=" + name);//main

        //获取当前线程的优先级,默认是正常的优先级，对应的常量为5，最高优先级为10,最低优先级为1;线程优先级的取值范围：[1-10]
        int priority = thread.getPriority();
        System.out.println("priority=" + priority);//5

        System.out.println("Hello");
    }
}
